# central registry: 中央登记中心
# 1. routr(url):rountr 决定了url的终结点（endpoint）
# 1.1 route 还有一个重要的参数信息 叫做 options: 决定了 request 和response 的method方法【“GET","POST" etc】，默认为GET
# 2. 视图函数: 用来处理用户的request ，并且返回（return）页面数据
# 3. 返回数据: 可以是txt文本，HTML文本， 可以是Json数据
from flask import Flask, request
from flask import render_template
# 调用自定义模块中的函数
from reserch import reserch4letters
from flask import request
# Flask：中央登记中心
app = Flask(__name__)

# 【Flask】
# 【HTML】
# 【jinja2】
# 1. 路由：相对路径，决定了 页面资源 的路径，如果没有登记，将返回404 not found
# 1.1 url：相对于 http://127.0.0.1：5000（可以省略不写） 的相对路径
# 1.2 methods：【GET】【POST】
# 2. 视图函数：
# 2.1 函数过程决定了你操作的方法，例如 if elif else for while ...
# 2.2 return：返回数据内容，text文本，HTML文件，JSON文件等
@app.route('/', methods=['GET'])
def hello():  # put application's code here
    return render_template('hello.html')

@app.route('/name', methods=['GET'])
def name():   # 【POST】实现用户输入,点击提交，将数据提交到
    return render_template('name.html')


@app.route('/result_name', methods=['POST'])
def result_name():
    py_firstname = request.form['Firstname']
    py_lastname = request.form['Lastname']
    py_fullname = py_lastname.title() + ' ' + py_firstname.title()
    return render_template('result_name.html',
                           fullname=py_fullname)


@app.route('/index', methods=['GET'])
def index():
    return render_template('index.html')

@app.route('/result', methods=['POST'])
def result():
    # 接收数据：request.form[HTML-参数名称]
    # 1.名字的全称（完整的应用）： 用户输入数据--->后端接收数据--->后端处理数据--->返回HTML页面
    # 2. 元音字母查询（第二个功能）
    # 3. 自选：购物车 或者课程表

    # 在中央登记中心，写这么多过程的代码，是不是有点不好玩？
    # 使用模块来写函数过程，在视图函数中调用模块实现函数方法
    py_word = request.form['word']
    py_vowels = request.form['vowels']
    py_found = reserch4letters(py_vowels,py_word)
    return render_template('result.html',
                           found = py_found)
def reserch4letters(py_vowels,py_word):
    """

    :param py_vowels: 在index。html默认的aeiou参数
    :param py_word:  在index。html输入的word参数
    :return: 返回词频字典结果
    """

    py_found = {}
    for i in py_word:
        if i in py_vowels:
            # 初始化 setdefault
            py_found.setdefault(i, 0)
            py_found[i] += 1
    return py_found


@app.route('/class_one', methods=['GET'])
def class_one():
    return render_template('class_one.html')

@app.route('/English 1', methods=['GET'])
def English_one():
    return render_template('English 1.html')

@app.route('/English 2', methods=['GET'])
def English_two():
    return render_template('English 2.html')

@app.route('/maogai', methods=['GET'])
def maogai():
    return render_template('maogai.html')

@app.route('/maoshi', methods=['GET'])
def maoshi():
    return render_template('maoshi.html')

@app.route('/pinglun', methods=['GET'])
def pinglun():
    return render_template('pinglun.html')

@app.route('/ps', methods=['GET'])
def ps():
    return render_template('ps.html')

@app.route('/python', methods=['GET'])
def python():
    return render_template('python.html')

@app.route('/renmen', methods=['GET'])
def renmen():
    return render_template('renmen.html')

@app.route('/sixiu', methods=['GET'])
def sixiu():
    return render_template('sixiu.html')

@app.route('/wenhua', methods=['GET'])
def wenhua():
    return render_template('wenhua.html')

@app.route('/xinwen', methods=['GET'])
def xinwen():
    return render_template('xinwen.html')

@app.route('/yong', methods=['GET'])
def yong():
    return render_template('yong.html')

@app.route('/yumaoqiu', methods=['GET'])
def yumaoqiu():
    return render_template('yumaoqiu.html')


if __name__ == '__main__':
    app.run( debug=True)

